/**
 * 生成一个订单号
 * 订单号由 4 位随机字母、当前时间的年-月-日-时-分-秒 和 5 位随机字母数字组成
 * @returns {string} 生成的订单号
 */
export function generateOrderNumber() {
    // 生成指定位数的随机字母字符串
    const generateRandomLetters = (length) => {
        return Array(length)
           .fill()
           .map(() => String.fromCharCode(65 + Math.floor(Math.random() * 26)))
           .join('');
    };

    // 生成指定位数的随机字母数字字符串
    const generateRandomAlphanumeric = (length) => {
        const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
        return Array(length)
           .fill()
           .map(() => chars.charAt(Math.floor(Math.random() * chars.length)))
           .join('');
    };

    // 获取当前时间的时间戳
    const getTimestamp = () => {
        const now = new Date();
        return now.getFullYear() +
               String(now.getMonth() + 1).padStart(2, '0') +
               String(now.getDate()).padStart(2, '0') +
               String(now.getHours()).padStart(2, '0') +
               String(now.getMinutes()).padStart(2, '0') +
               String(now.getSeconds()).padStart(2, '0');
    };

    // 生成前缀：4 位随机字母
    const prefix = generateRandomLetters(4);
    // 获取当前时间作为中间部分
    const timestamp = getTimestamp();
    // 生成后缀：5 位随机字母数字
    const suffix = generateRandomAlphanumeric(5);

    // 组合前缀、时间戳和后缀，生成订单号
    return `${prefix}${timestamp}${suffix}`;
}
